# pip install psutil GPUtil


import psutil
import GPUtil
import time

def get_cpu_usage():
    """获取 CPU 利用率"""
    cpu_usage = psutil.cpu_percent(interval=1)  # 获取 CPU 使用率（1 秒平均值）
    return cpu_usage

def get_memory_usage():
    """获取内存利用率"""
    memory = psutil.virtual_memory()
    memory_usage = memory.percent  # 获取内存使用率
    return memory_usage

def get_gpu_memory_usage():
    """获取显卡内存利用率"""
    gpus = GPUtil.getGPUs()
    if gpus:
        gpu = gpus[0]  # 获取第一个 GPU 的信息
        gpu_memory_usage = (gpu.memoryUsed / gpu.memoryTotal) * 100  # 计算显卡内存使用率
        return gpu_memory_usage
    else:
        return None

def main():
    i = 1  # 初始化秒数计数器
    while True:  # 死循环
        cpu_usage = get_cpu_usage()
        memory_usage = get_memory_usage()
        gpu_memory_usage = get_gpu_memory_usage()

        print(f"第{i}秒")
        print(f"CPU 利用率: {cpu_usage:.2f}%")
        print(f"内存利用率: {memory_usage:.2f}%")
        if gpu_memory_usage is not None:
            print(f"显卡内存利用率: {gpu_memory_usage:.2f}%")
        else:
            print("未检测到 NVIDIA 显卡或未安装 nvidia-smi 工具。")
        print("-" * 30)  # 打印分隔线以便区分每次打印

        i += 1  # 秒数计数器加1
        time.sleep(1)  # 每次循环暂停1秒

if __name__ == "__main__":
    main()